Advertising banner:
 
 
 A400
 
次へ.png


このセクションのドキュメントでは、FirstClassのInternet Services HTTPモジュールを使用してFirstClassのオブジェクトのデータ内容を入力する方法について説明します。



使用法

HTTPでFirstClassのオブジェクトにデータを入力する動作は、”submit”からHTTPで動作するよう設計されています。これはすべてのブラウザがサポートしている方式です。

”submit”は、GETメソッドかPOSTメソッドで使用できます。

POSTを使用すると、エンコードは「application/x-www-form-urlencoded」(RFC1866)か「multipart/form-data」(RFC1867)になります。フォームに更新をPOSTするためには、URLは、更新するオブジェクトのURLに「/FormSave」または「/Send」のエレメントを付加したものにする必要があります。

「FormSave」と「Send」の唯一の違いは、(その名前が示している通り)「Send」はPOSTが完了した時に送信を試みるということです。フォームのPOSTが成功しなかった場合、インターネットサービスは、ハードコードされたリダイレクト文字列かエラー202テンプレート(存在する場合)を使用して202応答を返します。

GETを使用したフォームの更新は、いつでも行うことができます(つまり、GETを使用する際は「FormSave」または「Send」を含めなくてもかまいません)。ただし、GETを使用してデータを入力した場合、インターネットサービスはエラーを報告しません。例えば、ユーザがアップデートを行うための有効な権限を持っていない場合、そのユーザがGETを使用して変更を行っても、その変更はユーザの知らないうちに破棄されることがあります。POSTを使用した場合は、権限の競合が起こり、変更が保存されなかったことがユーザに知らさます。




構文規則

各入力フィールドは、フィールド名とフィールド値の2つ部分で定義されます。入力動作の間にこの名前と値が実際に送信される方法は使用する入力メソッドによって異なりますが、HTMLドキュメント内では、<input>、<textarea>、その他フォーム コントロール用タグの名前パラメータと値パラメータに対応するのが普通です。

フィールド名とフィールド値は、12ポイントのフォントで表記されます。

<斜体で表記され山括弧で囲まれた>構文の部分を適切な値に換えてください(詳細は各ドキュメントを参照)。

[角括弧で囲まれた部分]の構文はオプションです。構文のオプション部分に続くアスタリスク「 * 」は、必要に応じてこの部分が2回以上繰り返される場合があることを示します。

縦線「 | 」は、構文内で選択可能なオプションを示します。(丸括弧)は、利用可能な選択肢を明確にするために使用されます。

一部のフィールド名にはコロン「 : 」と等号「 = 」が含まれますが、ブラウザによっては、これらの記号の処理で問題が起こる場合があります。実際には、これらの記号は、特に記述がない場合にはアンダーライン「 _ 」に置き換えることができます。例えば、「FieldID_1000_LONG」というフィールド名は、「FieldID:1000=LONG」と同じように機能します。以前のWMLブラウザや携帯端末用ブラウザの多くで、コロンと等号記号を使用したフールド名に問題が起こってしました。

特に記述がない限り、構文リテラルでは大文字と小文字が区別されます。




POST動作でのHTMLチェックボックスと「Clear=0」URLパラメータ

ブラウザがチェックボックスを実装するためにインターネットサービスがこれまで行ってきた方法として、フォーム上でPOSTされる際、これまではオブジェクト内に保存されているデータを入力前に消去してきました。この動作は、メッセージにとってはたいていの場合適切ですが、ドキュメント、フォーム、その他のオブジェクトの場合は、データが失われてしまう危険性を高くするものです。この動作を回避するには、データをPOSTするために使用するURLにClear=0パラメータを含めることができます。

メモ.png 注意
Clear=0を使用する場合、手元のブラウザのチェックボックスコントロールを「そのままの状態で」使用することはできません。その理由は、このコントロールがサーバに「オフ」状態を送信できないためです。その代わりに、HTMLチェックボックスに名前を付けずに(したがって名前はサーバに送信されなくなります)、実際に送信されるJavaScriptを使用した隠し入力フィールドにチェックボックスをスレーブさせます。

次の例は、フィールド1000に対応した単一のチェックボックスをユーザが編集できるようにした、非常に単純なフォームのHTMLコードです。

<form action="<X-FC-OBJURL SLASH>FormSave?Clear=0" enctype="multipart/form-data">

<input type="hidden" name="FieldID:1000=SHORT" value="0"><input type="checkbox" onClick="this.form.elements['FieldID:1000=SHORT'].value=(this.checked?1:0);"> Checkbox 1000<br>

<input type="submit" value=" Save ">

</form>

例外
クリア動作が「Clear=0」パラメータによって制御されないオブジェクト部分は、受信者リストです。インターネットサービスもデフォルトでこの部分をクリアしますが、そのクリアが行われるかどうかは、「Clear=0」パラメータではなくKeepNames入力フィールドによって制御されます。




hirosue Shino Web Site